module REG_PRJ_reg_top(
    output [2 -1:0]sys_cfg_mode,
    output [20 -1:0]sys_cfg_kernel_size,
    output [3 -1:0]sys_cfg_stride,
    output [3 -1:0]sys_cfg_cfg_info0_layer_field0,
    output [3 -1:0]sys_cfg_cfg_info0_layer_field1,
    output [3 -1:0]sys_cfg_cfg_info0_layer_field2,
    output [3 -1:0]sys_cfg_cfg_info0_layer_field3,
    output [3 -1:0]sys_cfg_cfg_info0_layer_field4,
    output [3 -1:0]sys_cfg_cfg_info0_layer_field5,
    output [3 -1:0]sys_cfg_cfg_info1_layer_field0,
    output [3 -1:0]sys_cfg_cfg_info1_layer_field1,
    output [3 -1:0]sys_cfg_cfg_info1_layer_field2,
    output [3 -1:0]sys_cfg_cfg_info1_layer_field3,
    output [3 -1:0]sys_cfg_cfg_info1_layer_field4,
    output [3 -1:0]sys_cfg_cfg_info1_layer_field5,
    output [3 -1:0]sys_cfg_cfg_info2_layer_field0,
    output [3 -1:0]sys_cfg_cfg_info2_layer_field1,
    output [3 -1:0]sys_cfg_cfg_info2_layer_field2,
    output [3 -1:0]sys_cfg_cfg_info2_layer_field3,
    output [3 -1:0]sys_cfg_cfg_info2_layer_field4,
    output [3 -1:0]sys_cfg_cfg_info2_layer_field5,
    output [3 -1:0]sys_cfg_cfg_info3_layer_field0,
    output [3 -1:0]sys_cfg_cfg_info3_layer_field1,
    output [3 -1:0]sys_cfg_cfg_info3_layer_field2,
    output [3 -1:0]sys_cfg_cfg_info3_layer_field3,
    output [3 -1:0]sys_cfg_cfg_info3_layer_field4,
    output [3 -1:0]sys_cfg_cfg_info3_layer_field5,
    output [3 -1:0]sys_cfg_cfg_info4_layer_field0,
    output [3 -1:0]sys_cfg_cfg_info4_layer_field1,
    output [3 -1:0]sys_cfg_cfg_info4_layer_field2,
    output [3 -1:0]sys_cfg_cfg_info4_layer_field3,
    output [3 -1:0]sys_cfg_cfg_info4_layer_field4,
    output [3 -1:0]sys_cfg_cfg_info4_layer_field5,
    output [3 -1:0]sys_cfg_cfg_info5_layer_field0,
    output [3 -1:0]sys_cfg_cfg_info5_layer_field1,
    output [3 -1:0]sys_cfg_cfg_info5_layer_field2,
    output [3 -1:0]sys_cfg_cfg_info5_layer_field3,
    output [3 -1:0]sys_cfg_cfg_info5_layer_field4,
    output [3 -1:0]sys_cfg_cfg_info5_layer_field5,
    output [3 -1:0]sys_cfg_cfg_info6_layer_field0,
    output [3 -1:0]sys_cfg_cfg_info6_layer_field1,
    output [3 -1:0]sys_cfg_cfg_info6_layer_field2,
    output [3 -1:0]sys_cfg_cfg_info6_layer_field3,
    output [3 -1:0]sys_cfg_cfg_info6_layer_field4,
    output [3 -1:0]sys_cfg_cfg_info6_layer_field5,
    output [3 -1:0]sys_cfg_cfg_info7_layer_field0,
    output [3 -1:0]sys_cfg_cfg_info7_layer_field1,
    output [3 -1:0]sys_cfg_cfg_info7_layer_field2,
    output [3 -1:0]sys_cfg_cfg_info7_layer_field3,
    output [3 -1:0]sys_cfg_cfg_info7_layer_field4,
    output [3 -1:0]sys_cfg_cfg_info7_layer_field5,
    output [3 -1:0]sys_cfg_cal_mode,
    output [3 -1:0]sys_cfg_cal_round,
    output [3 -1:0]sys_cfg_cvt_mode,

    input [2 -1:0]sys_status_mode,
    input [20 -1:0]sys_status_kernel_size,
    input [3 -1:0]sys_status_stride,
    input sys_status_blk0_status,
    input sys_status_blk1_status,
    input sys_status_blk2_status,
    input sys_status_blk3_status,
    input sys_status_blk4_status,
    input sys_irq_resp_err_in,
    input sys_irq_resp_err_wen,
    input sys_irq_timeout_in,
    input sys_irq_timeout_wen,
    input sys_irq_inner_err_in,
    input sys_irq_inner_err_wen,


    input                                 pclk,
    input                                 presetn, 
    input   [`VMM_RAL_ADDR_WIDTH     -1:0]paddr,
    input                                 psel,
    input                                 penable,
    input                                 pwrite,
    input   [`VMM_RAL_DATA_WIDTH     -1:0]pwdata,
    input   [(`VMM_RAL_DATA_WIDTH/8) -1:0]pstrb,
    output                                pready,
    output  [`VMM_RAL_DATA_WIDTH     -1:0]prdata,
    output                                pslverr
);

ral_blk_REG_PRJ_sys_cfg_itf u_sys_cfg_itf();
ral_blk_REG_PRJ_sys_status_itf u_sys_status_itf();
ral_blk_REG_PRJ_sys_irq_itf u_sys_irq_itf();

REG_PRJ_reg_rtl u_reg(
    .sys_cfg_regs(u_sys_cfg_itf.regs),
    .sys_status_regs(u_sys_status_itf.regs),
    .sys_irq_regs(u_sys_irq_itf.regs),

    // Outputs
    .pready(pready),
    .prdata(prdata[`VMM_RAL_DATA_WIDTH-1:0]),
    .pslverr(pslverr),
    // Inputs
    .pclk(pclk),
    .presetn(presetn),
    .paddr(paddr[`VMM_RAL_ADDR_WIDTH-1:0]),
    .psel(psel),
    .penable(penable),
    .pwrite(pwrite),
    .pwdata(pwdata[`VMM_RAL_DATA_WIDTH-1:0]),
    .pstrb(pstrb[(`VMM_RAL_DATA_WIDTH/8)-1:0]));
    
REG_PRJ_reg_trans u_trans(
    .clk(pclk),
    .rst_n(presetn),
    //output
    .sys_cfg_mode(sys_cfg_mode),
    .sys_cfg_kernel_size(sys_cfg_kernel_size),
    .sys_cfg_stride(sys_cfg_stride),
    .sys_cfg_cfg_info0_layer_field0(sys_cfg_cfg_info0_layer_field0),
    .sys_cfg_cfg_info0_layer_field1(sys_cfg_cfg_info0_layer_field1),
    .sys_cfg_cfg_info0_layer_field2(sys_cfg_cfg_info0_layer_field2),
    .sys_cfg_cfg_info0_layer_field3(sys_cfg_cfg_info0_layer_field3),
    .sys_cfg_cfg_info0_layer_field4(sys_cfg_cfg_info0_layer_field4),
    .sys_cfg_cfg_info0_layer_field5(sys_cfg_cfg_info0_layer_field5),
    .sys_cfg_cfg_info1_layer_field0(sys_cfg_cfg_info1_layer_field0),
    .sys_cfg_cfg_info1_layer_field1(sys_cfg_cfg_info1_layer_field1),
    .sys_cfg_cfg_info1_layer_field2(sys_cfg_cfg_info1_layer_field2),
    .sys_cfg_cfg_info1_layer_field3(sys_cfg_cfg_info1_layer_field3),
    .sys_cfg_cfg_info1_layer_field4(sys_cfg_cfg_info1_layer_field4),
    .sys_cfg_cfg_info1_layer_field5(sys_cfg_cfg_info1_layer_field5),
    .sys_cfg_cfg_info2_layer_field0(sys_cfg_cfg_info2_layer_field0),
    .sys_cfg_cfg_info2_layer_field1(sys_cfg_cfg_info2_layer_field1),
    .sys_cfg_cfg_info2_layer_field2(sys_cfg_cfg_info2_layer_field2),
    .sys_cfg_cfg_info2_layer_field3(sys_cfg_cfg_info2_layer_field3),
    .sys_cfg_cfg_info2_layer_field4(sys_cfg_cfg_info2_layer_field4),
    .sys_cfg_cfg_info2_layer_field5(sys_cfg_cfg_info2_layer_field5),
    .sys_cfg_cfg_info3_layer_field0(sys_cfg_cfg_info3_layer_field0),
    .sys_cfg_cfg_info3_layer_field1(sys_cfg_cfg_info3_layer_field1),
    .sys_cfg_cfg_info3_layer_field2(sys_cfg_cfg_info3_layer_field2),
    .sys_cfg_cfg_info3_layer_field3(sys_cfg_cfg_info3_layer_field3),
    .sys_cfg_cfg_info3_layer_field4(sys_cfg_cfg_info3_layer_field4),
    .sys_cfg_cfg_info3_layer_field5(sys_cfg_cfg_info3_layer_field5),
    .sys_cfg_cfg_info4_layer_field0(sys_cfg_cfg_info4_layer_field0),
    .sys_cfg_cfg_info4_layer_field1(sys_cfg_cfg_info4_layer_field1),
    .sys_cfg_cfg_info4_layer_field2(sys_cfg_cfg_info4_layer_field2),
    .sys_cfg_cfg_info4_layer_field3(sys_cfg_cfg_info4_layer_field3),
    .sys_cfg_cfg_info4_layer_field4(sys_cfg_cfg_info4_layer_field4),
    .sys_cfg_cfg_info4_layer_field5(sys_cfg_cfg_info4_layer_field5),
    .sys_cfg_cfg_info5_layer_field0(sys_cfg_cfg_info5_layer_field0),
    .sys_cfg_cfg_info5_layer_field1(sys_cfg_cfg_info5_layer_field1),
    .sys_cfg_cfg_info5_layer_field2(sys_cfg_cfg_info5_layer_field2),
    .sys_cfg_cfg_info5_layer_field3(sys_cfg_cfg_info5_layer_field3),
    .sys_cfg_cfg_info5_layer_field4(sys_cfg_cfg_info5_layer_field4),
    .sys_cfg_cfg_info5_layer_field5(sys_cfg_cfg_info5_layer_field5),
    .sys_cfg_cfg_info6_layer_field0(sys_cfg_cfg_info6_layer_field0),
    .sys_cfg_cfg_info6_layer_field1(sys_cfg_cfg_info6_layer_field1),
    .sys_cfg_cfg_info6_layer_field2(sys_cfg_cfg_info6_layer_field2),
    .sys_cfg_cfg_info6_layer_field3(sys_cfg_cfg_info6_layer_field3),
    .sys_cfg_cfg_info6_layer_field4(sys_cfg_cfg_info6_layer_field4),
    .sys_cfg_cfg_info6_layer_field5(sys_cfg_cfg_info6_layer_field5),
    .sys_cfg_cfg_info7_layer_field0(sys_cfg_cfg_info7_layer_field0),
    .sys_cfg_cfg_info7_layer_field1(sys_cfg_cfg_info7_layer_field1),
    .sys_cfg_cfg_info7_layer_field2(sys_cfg_cfg_info7_layer_field2),
    .sys_cfg_cfg_info7_layer_field3(sys_cfg_cfg_info7_layer_field3),
    .sys_cfg_cfg_info7_layer_field4(sys_cfg_cfg_info7_layer_field4),
    .sys_cfg_cfg_info7_layer_field5(sys_cfg_cfg_info7_layer_field5),
    .sys_cfg_cal_mode(sys_cfg_cal_mode),
    .sys_cfg_cal_round(sys_cfg_cal_round),
    .sys_cfg_cvt_mode(sys_cfg_cvt_mode),
    //input
    .sys_status_mode(sys_status_mode),
    .sys_status_kernel_size(sys_status_kernel_size),
    .sys_status_stride(sys_status_stride),
    .sys_status_blk0_status(sys_status_blk0_status),
    .sys_status_blk1_status(sys_status_blk1_status),
    .sys_status_blk2_status(sys_status_blk2_status),
    .sys_status_blk3_status(sys_status_blk3_status),
    .sys_status_blk4_status(sys_status_blk4_status),
    .sys_irq_resp_err_in(sys_irq_resp_err_in),
    .sys_irq_resp_err_wen(sys_irq_resp_err_wen),
    .sys_irq_timeout_in(sys_irq_timeout_in),
    .sys_irq_timeout_wen(sys_irq_timeout_wen),
    .sys_irq_inner_err_in(sys_irq_inner_err_in),
    .sys_irq_inner_err_wen(sys_irq_inner_err_wen),

    .sys_cfg_usr(u_sys_cfg_itf.usr),
    .sys_status_usr(u_sys_status_itf.usr),
    .sys_irq_usr(u_sys_irq_itf.usr)
);

endmodule